Multimedia Data Streaming System and Method Thereof

ABSTRACT

A multimedia data streaming system and a method thereof are disclosed. The multimedia data streaming system is used for transmitting multimedia data to a receiver by means of a streaming server through a dynamic streaming process. The multimedia data streaming system includes a converting module and a scheduler module. The scheduler module is used to obtain the bandwidth condition between the streaming server and the receiver dynamically, it can then request the converting module to convert the original data into streaming chunks with the optimal bit rates in accordance with the bandwidth condition detected; the streaming chunks can then be transmitted to the receiver by means of the streaming server.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a multimedia data streaming system and a method thereof, and more particularly, to a multimedia data streaming system and a method thereof which are able to detect the bandwidth condition dynamically and generate different bit rates of multimedia data according to the bandwidth detected; the multimedia data can then be transmitted to the receiver through a streaming process.

2. Description of the Related Art

With the advancement of technology, there are many electronic devices which can be used for web browsing, watching multimedia files or text files. Some examples of these devices are computers, PDAs and mobiles phones. Through the transmission ability of the internet, these multimedia or text files can be easily transmitted from one electronic device to another.

Due to the limitation of the network bandwidth or the lack of memory space at the receiver, large multimedia files often cannot be fully downloaded instantly and be played smoothly; therefore data streaming technology is developed to solve the above mentioned obstacles. However, data streaming technology is easily affected by the variation of network bandwidth; delayed jitter within the transmission; packet loss and insufficient network bandwidth, thus the quality of transmission is unstable. As a result, the bit rate of the streaming chunks set initially cannot be transmitted successfully; take a video file as an example, there will be incoherence in the image and the sound (in most cases, there will be sound without image), in some incidents, the video will even crash half way while still playing the file.

Therefore, a multimedia data streaming system and a method thereof are needed so as to resolve the above mentioned problems.

SUMMARY OF THE INVENTION

The objective of the present invention is to provide a multimedia data streaming system and a method thereof, which are able to detect the bandwidth condition dynamically and generate different bit rates of multimedia data according to the bandwidth detected; the multimedia data then can be transmitted to the receiver through a streaming process.

In order to achieve the above objective, the present invention presents a multimedia data streaming system which includes a converting module and a scheduler module. The scheduler module is used to dynamically obtain the bandwidth condition between the streaming server and the receiver, it can then request the converting module to convert the original data into streaming chunks with the optimal bit rates in accordance with the bandwidth condition detected; the streaming chunks can then be transmitted to the receiver by means of the streaming server.

Through the above mentioned process, streaming chunks of different bit rates can be generated dynamically in accordance with the bandwidth condition detected and the streaming chunks will be transmitted to the receiver, therefore, optimal streaming quality can be obtained under variable bandwidth.

In order to achieve the above objective, the multimedia data streaming method comprises the following steps: Step A: obtaining the bandwidth condition at the receiver dynamically. Step B: obtaining a streaming chunk which has a bit rate substantially close to the bandwidth detected; the streaming chunk is then transmitted to the receiver; Step C: repeat Step A and Step B.

Through the above mentioned process, streaming chunks of different bit rates can be generated dynamically in accordance with the bandwidth condition detected and the streaming chunks will be transmitted to the receiver.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows the environment in which the multimedia data streaming system of the present invention is used.

FIG. 2 shows the functional diagram of the multimedia data streaming system of the present invention.

FIG. 3 shows a flow chart of the multimedia data streaming method.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The advantages and innovative features of the invention will become more apparent from the following preferred embodiments.

Refer to FIG. 1 and FIG. 2 which show an embodiment for the multimedia data streaming system of the present invention.

Refer to FIG. 1 which shows the environment in which the multimedia data streaming system of the present invention is used. As shown in FIG. 1, a multimedia data streaming system 1 is connected to a receiver 91 through a streaming server 60 and a network 80. When the streaming sever 60 receives a multimedia data streaming request from the receiver 91, the multimedia data streaming system 1 will connect to the network 80 and transmit the multimedia data to the receiver 91. The protocols used for the transmission among the multimedia data streaming system 1, the network 80 and the receiver 91 include: Resource Reservation Setup Protocol (RSVP); Real-time Transport Protocol (RTP); RTP Control Protocol (RTCP); Real Time Streaming Protocol (RTSP); Real Time Messaging Protocol (RTMP); User Data Protocol (UDP) or Internet Protocol (IP). However, the present invention is not only limited to these protocols. The above mentioned protocols are known in the art and are not the focus of the present invention, thus these protocols will not be discussed in further details.

In one embodiment of the present invention, the multimedia data which is transmitted by the multimedia data streaming system 1 includes video data (e.g. 3GP, FLV or MOV), sound data (e.g. MP3 or WAV), image data (e.g. JPG, BMP or GIF) or text data (TXT), or it can also be a combination of these data. However, the present invention is not only limited to these data formats.

In one embodiment of the present invention, the network 80 can be a wired or a wireless network; the network described above can be Internet, General Packet Radio Service (GPRS), Third Generation (3G), Wireless Fidelity (Wi-Fi) or Worldwide Interoperability for Microwave Access (WiMAX). However, the present invention is not only limited to these networks.

In one embodiment of the present invention, the multimedia data streaming system 1 can be software; hardware; firm ware or a combination of these elements. The multimedia data streaming system 1 can be installed into devices such as a computer; a mobile phone; a PDA; a game console or a set-top box. However, the present invention is not only limited to these devices. The multimedia data streaming system 1 can be installed into any devices which have the ability of connecting to a network as well as the ability of providing streaming chunks. In one embodiment, the receiver 91 can be software; hardware; firm ware or a combination of these elements. Similarly, the receiver 91 can also be installed in devices such as a computer; a mobile phone; a PDA; a game console or a set-top box. However, the present invention is not only limited to these devices. The receiver 91 can be installed into any devices which have the ability of connecting to a network and also the ability of receiving the streaming chunks.

Next refer to FIG. 2 which shows the functional diagram of the multimedia data streaming system of the present invention.

As shown in FIG. 2, different bit rates of multimedia data is transmitted by the multimedia data streaming system 1 to the receiver 91 by means of the streaming server 60. The multimedia data streaming system 1 comprises a converting module 30 and a scheduler module 40. The multimedia data streaming system 1 and the streaming server 60 are connected through the network 80; and the streaming server 60 and the receiver 91 are connected through a network. The streaming server 60 is able to accept a multimedia data streaming request from the receiver 91. The sources of the original multimedia data can be form external devices (not shown) or from database 20. However, the present invention is not only limited to these sources. Take note that in one embodiment, the multimedia data streaming system 1 can also comprise the streaming server 60. The streaming server 60 is a known technology of the art, so it will not be discussed in further details.

The converting module 30 can convert the original multimedia data into streaming chunks of different bit rates; the scheduler module 40 can obtain the bandwidth condition between the streaming server 60 and the receiver 91 dynamically, it can then request the converting module 30 to convert the original data into streaming chunks with the optimal bit rates according to the bandwidth condition detected; the streaming chunks can then be transmitted to the receiver 91 by means of the streaming server 60. Therefore, according to the bandwidth condition detected dynamically, the multimedia data streaming system 1 can transmit streaming chunks with optimal bit rates to the receiver 91.

In one embodiment of the present invention, the multimedia data streaming system 1 comprises the database 20, which is used for storing streaming chunks generated by the converting module 30. According to the bandwidth obtained, the scheduler module 40 will request the database 20 for a streaming chunk which has a bit rate substantially close to the bandwidth detected. If such streaming chunk exists, the streaming chunk will be transmitted to the streaming server 60, then to the network 80 and then to the receiver 90. If no such streaming chunk exists, the converting module 30 will then convert the original data into a streaming chunk which has a bit rate substantially close to the bandwidth. The streaming chunk will be stored in the database 20 temporarily, and then it will be transmitted d to the streaming server 60 which then passes through the network 80 and arrives at the receiver 91.

In one embodiment of the present invention, the scheduler module 40 further comprises a detecting module 41 and a forecasting module 42. The detecting module 41 is employed to obtain the bandwidth condition between the streaming server 60 and the receiver 91 dynamically. In one embodiment, the detecting module 41 can detect in real-time, or in a fixed time interval in order to obtain the bandwidth condition between the streaming server 60 and the receiver 91. The forecasting module 42 is employed to forecast the bandwidth condition between the streaming server 60 and the receiver 91. For example, the detecting module 41 will ping the receiver 91 at a fixed time interval by means of the streaming server 60. The receiver 91 will then return a packet which passes through the streaming server 60 and then to the detecting module 41. The response time of this process can be used to estimate the bandwidth condition between the streaming server 60 and the receiver 91. The forecasting module 42 can use the bandwidth condition in a statistical analysis to predict the forthcoming bandwidth condition. After the bandwidth has been predicted, the scheduler module 40 can request the converting module 30 to pre-convert the streaming chunks with a bit rate substantially close to the predicted bandwidth, thus the transmission process will become more efficient. However, the present invention is not only limited to the above mentioned detecting or forecasting method.

In one embodiment of the present invention, the converting module 30 further comprises a multiple of devices 31. Each device consists of a system resource (for example, operation ability, transmission ability or memory space) and a work status. By the converting module 30, one is able to perform optimal resource allocation according to the system resource and the work status of each device 31, so that the data which requires more resources can then be processed more efficiently. For example, in one embodiment, the converting module 30 converts the original data into a group of pictures (GOP) and allocates them to each device 31. Each device 31 then individually performs the required operation and conversion process; the data processed by the devices 31 are then combined to form the streaming chunk. Next, the streaming chunk can be stored into the database 20, and then it will pass through the streaming server 60 and arrive at the receiver 91.

Take note that when transmitting streaming chunks with different bit rates, there will be no confusion at the receiver 91 regarding the sequence of the streaming chunks. Through RTP or RTSP protocol, the streaming server 60 will place a sequence number or a time stamp on each streaming chunk before transmitting it to the receiver 91. Thus when streaming chunks are transmitted with different bit rates, the streaming server 60 only needs to send the next sequence number or time stamp to the receiver 91. As a result, it is not necessary to retransmit the whole streaming chunks.

In one embodiment, the multiple of devices 31 include computers, mobile phones, PDAs, game consoles or set-top boxes. However, the present invention is not only limited to these devices. Any device which has the ability to perform operation and conversion can be used as a device 31 for the present invention.

The multimedia data streaming system 1 will obtain the bandwidth condition between the multimedia data streaming system 1 and the receiver 91 at a predetermined time interval, and will dynamically transmit at least one streaming chunk with a suitable bit rate to the receiver 91. As a result, the transmission quality will not be affected by the bandwidth deficiency or bandwidth instability and that the receiver 91 will be able to receive every streaming chunk successfully.

For example, when the receiver 91 (e.g. a mobile phone) requests for a 3GP file from the streaming server 60 via the network 80 (e.g. 3G network), the scheduler module 40 will employ the detecting module 41 to detect the bandwidth condition between the streaming server 60 and the receiver 91; if 200 kbits/sec is detected, the scheduler module 40 will inquire the database 20 to find out if there is a 200kbits/sec streaming chunk for the 3GP file; if the database 20 consists of the required streaming chunk, the 200 kbits/sec streaming chunk of the 3GP file will be transmitted to the receiver 91; if the database 20 does not consist of the required streaming chunk, the scheduler module 40 will request the conversion module 30 so as to convert the 3GP file into streaming chunks of 200 kbits/sec, and the streaming chunks will be transmitted to the receiver 91 and get stored in the database 20; during the transmission of the 200 kbits/sec streaming chunk, the detecting module 41 will re-detect the bandwidth condition between the streaming server 60 and the receiver 91 every single second. If the bandwidth detected has reduced to 100 kbits/sec, the above mentioned process will be repeated. The scheduler module 40 will request a streaming chunk of 100 kbits/sec from the database 20, or it will request the converting module 30 to convert the 3GP file into streaming chunks of 100 kbits/sec and then transmitting it to the receiver 91. Take note that when the streaming chunks are transmitted with different bit rates, RTP or RTSP protocol is used and there will be no confusion at the receiver 91 regarding to the sequence of the streaming chunks. Therefore, the scheduler module 40 can dynamically request the converting module 30 to generate different bit rates of multimedia data in accordance with the bandwidth detected, so that an optimal streaming quality can be obtained under variable network bandwidth.

Take another example, when the receiver 91 (e.g. a computer) requests for a real time video (e.g. a baseball game) from the streaming server 60 via the network 80, the scheduler module 40 will employ the detecting module 41 in order to detect the bandwidth condition between the streaming server 60 and the receiver 91; if 300 kbits/sec is detected, the scheduler module 40 will request the converting module 30 to convert real time video into 300 kbits/sec streaming chunks, the streaming chunks will be transmitted to the receiver 91 and will be stored in the database 20; during the transmission of the 300 kbits/sec streaming chunk, the detecting module 41 will re-detect the bandwidth condition between the streaming server 60 and the receiver 91 every 0.5 second. If the bandwidth detected is reduced to 50 kbits/sec, the above mentioned process will be repeated: The scheduler module 40 will request the converting module 30 to convert real time video into 50 kbits/sec streaming chunks, the streaming chunks will be transmitted to the receiver 91 and will be stored in the database 20; Take note that when transmitting streaming chunks with different bit rates, RTP or RTSP protocol is used and there will be no confusion at the receiver 91 regarding to the sequence of the streaming chunks, and there is no need for the retransmission of streaming chunks when altering the transmission bit rate. As a result, the scheduler module 40 can dynamically request the converting module 30 to generate different bit rates of multimedia data in accordance with the bandwidth detected at the receiver 91, such that optimal streaming quality can be obtained under the condition of variable network bandwidth.

The present invention also provides a multimedia data streaming method. The multimedia data can be dynamically streamed to the receiver by passing through the network and the streaming server. Next, refer to FIG. 3 which shows a flow chart of the multimedia data streaming method.

As shown in FIG. 3, the present invention first proceeds with the step S51: the streaming server accepts a multimedia data streaming request from the receiver.

In one embodiment, the streaming server accepts a multimedia data streaming request from the receiver, and the request is then passed onto the scheduler module.

Next, the present invention proceeds with the step S52: obtaining the bandwidth condition between the streaming server and the receiver dynamically.

In one embodiment, the bandwidth condition of the network is obtained from the receiver dynamically at a fixed time interval (e.g. 1 second). The bandwidth condition of the network between the receiver and the streaming server is obtained by means of detection; the condition obtained can then be used to forecast the bandwidth condition between the receiver and the streaming server.

Next, the present invention proceeds with the step S53: sending an enquiry to the database to find out if there exists a streaming chunk with a bit rate substantially close to the bandwidth detected.

Next the present invention proceeds with the step S54: if the requested streaming chunk exists, the streaming chunks will be transmitted to the receiver. Or it will proceed with the step S55: if there are no such streaming chunks, the original multimedia data will be converted into streaming chunks with bit rate substantially close to the bandwidth condition, the streaming chunks will be transmitted to the receiver and will then be stored in the database.

In one embodiment, the step S55 further comprises the following steps:

Step S551: the scheduler module obtains the condition of each device from a multiple of devices. The condition of each device includes a system resource and a work status.

Step S552: the scheduler module assigns the original data to a multiple of devices according to the system resource and the work status on each device.

Step S553: the scheduler module converts the original data into a group of pictures (GOP) and allocates them to each device for the conversion process in order to form streaming chunks with a bit rate substantially close to the bandwidth detected.

Step S554: combining the data operated by each device into a streaming chunk.

Step S555: storing the streaming chunk into the database. When the step S55 is completed, the present invention proceeds with the step S54: transmitting the streaming chunk to the receiver.

Take note that if the multimedia data is not completely transmitted (the completion of the transmission process is determined by the streaming server), the procedures of the multimedia data streaming system method will be repeated. Through the above processes, the original data can be converted into streaming chunks with the optimal bit rates in accordance with the bandwidth condition detected; the streaming chunks can then be transmitted to the receiver by means of the streaming server.

In one embodiment of the present invention, the multiple of devices can be a computer; a mobile phone; a PDA; a game console and a set-top box. However, the present invention is not only limited to these devices. Any devices that can perform operation and conversion can be one of these devices. Also, the receiver can be a computer, a mobile phone; a PDA; a game console or a set-top box. However, the receiver is not only limited to these devices. In the present invention, any devices which have the function of receiving streaming chunks can be used as a receiver.

Although the present invention has been explained in relation to its preferred embodiment, it is also of vital importance to acknowledge that many other possible modifications and variations can be made without departing from the spirit and scope of the invention as hereinafter claimed. 

1. A multimedia data streaming method which is able to transmit multimedia data to a receiver through a dynamic streaming process, the method comprises the following steps: step A: obtaining a bandwidth condition at the receiver dynamically; step B: obtaining a streaming chunk which has a bit rate substantially close to the bandwidth condition detected; the streaming chunk is then transmitted to the receiver; and step C: repeat step A and step B; whereby streaming chunks of different bit rates can be generated dynamically in accordance with the bandwidth condition detected and the streaming chunks will be transmitted to the receiver.
 2. The multimedia data streaming method as claimed in claim 1, wherein the step A obtains the bandwidth condition of the receiver in a real-time manner or at a fixed time interval.
 3. The multimedia data streaming method as claimed in claim 1, wherein the step B further comprises the following steps: requesting a database for the streaming chunk which has a bit rate substantially close to the bandwidth condition detected; if such streaming chunk exists, the streaming chunk will be transmitted to the streaming server; if no such streaming chunk exists, original data of the multimedia data will be converted into streaming chunks with a bit rate substantially close to the bandwidth condition detected; the streaming chunks will be stored in the database and then the streaming chunks will be transmitted to the receiver.
 4. The multimedia data streaming method as claimed in claim 1, wherein the step B further comprises the following steps: converting original data of the multimedia data into streaming chunks with a bit rate substantially close to the bandwidth detected, the streaming chunks will then be transmitted to the receiver.
 5. The multimedia data streaming method as claimed in claim 3, wherein the step of converting the original data of the multimedia data into streaming chunks with a bit rate substantially close to the bandwidth condition detected comprises the following steps: converting the original data of the multimedia data into a group of pictures and allocating the pictures to a multiple of devices for the conversion step.
 6. The multimedia data streaming method as claimed in claim 5, wherein the allocation of the original data of the multimedia data comprises the following steps: obtaining a condition of each device from the multiple of devices; the condition of each device includes a system resource and a work status; allocating the original data of the multimedia data to each device according to the system resource and the work status of each device.
 7. The multimedia data streaming method as claimed in claim 1, wherein the bandwidth condition of the receiver is obtained dynamically through a detection method or a forecasting method.
 8. The multimedia data streaming method as claimed in claim 1, wherein the multimedia data can be in the form of video data, sound data, image data or text data.
 9. The multimedia data streaming method as claimed in claim 6, wherein the multiple of devices comprises a computer; a mobile phone; a PDA; a game console or a set-top box.
 10. The multimedia data streaming method as claimed in claim 1, wherein the receiver can be a computer; a mobile phone; a PDA; a game console or a set-top box.
 11. A multimedia data streaming system which is able to transmit multimedia data to a receiver by means of a streaming server through a dynamic streaming process; the system comprises: a converting module to convert original data of the multimedia data into streaming chunks with different bit rates; and a scheduler module, the scheduler module is used to obtain a bandwidth condition between the streaming server and the receiver dynamically, and the scheduler module can request the converting module to convert the original data of the multimedia data into streaming chunks with the optimal bit rates in accordance with the bandwidth condition detected; the streaming chunks then can be transmitted to the receiver by means of the streaming server; whereby streaming chunks of different bit rates can be generated dynamically in accordance with the bandwidth condition detected and the streaming chunks will be transmitted to the receiver.
 12. The multimedia data streaming system as claimed in claim 11, wherein the scheduler module will obtain the bandwidth condition of the receiver in a real-time manner or at a fixed time interval.
 13. The multimedia data streaming system as claimed in claim 11 further comprises: a database, which is used for storing the streaming chunks converted by the converting module; whereby the scheduler module will request the database for a streaming chunk which has a bit rate substantially close to the bandwidth detected; if such streaming chunk exists, the streaming chunk will be transmitted to the streaming server; and if no such streaming chunk exists, the original data of the multimedia data will be converted into streaming chunks with a bit rate which is substantially close to the bandwidth condition; the streaming chunks will be stored in the database and then the streaming chunks will be transmitted to the receiver.
 14. The multimedia data streaming system as claimed in claim 13, wherein the converting module comprises a multiple of devices, the converting module will convert the original data of the multimedia data into a group of pictures and then allocate the pictures to the multiple of devices, such that each device can perform the conversion process individually.
 15. The multimedia data streaming system as claimed in claim 14, wherein the converting module allocates the pictures in accordance with a system resource and a work status of each device.
 16. The multimedia data streaming system as claimed in claim 11, wherein the scheduler module comprises a detecting module in order to detect the bandwidth condition between the streaming server and the receiver dynamically.
 17. The multimedia data streaming system as claimed in claim 11, wherein the scheduler module comprises a forecasting module in order to forecast the bandwidth condition between the streaming server and the receiver dynamically.
 18. The multimedia data streaming system as claimed in claim 11, wherein the multimedia data can be in the form of video data, sound data, image data or text data.
 19. The multimedia data streaming system as claimed in claim 14, wherein the multiple of devices comprises a computer; a mobile phone; a PDA; a game console or a set-top box.
 20. The multimedia data streaming system as claimed in claim 11, wherein the receiver can be a computer; a mobile phone; a PDA; a game console or a set-top box. 